Print data processing system

ABSTRACT

When sending a print data to a server over a network to print the print data using a printer connected to the server, first the client opens the printer in a RAW mode. Next, the client specifies one of print processors providing to the server that is only for RAW data. Then, the client  1  performs job process on the print data and sends RAW data to the server  2 . Thereafter, the client  1  closes the printer. As a result, the amount of print data sent from the client to the server is reduced.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a network system in which an imageforming device connected to a server performs printing upon receivingprint data from a client computer over a network, and more specificallyto a print data processing system provided to the client computer.

2. Related Art

There have been known network printing systems in which an image formingdevice is connected to one of a plurality of personal computers (PCs)interconnected over a network so that the image forming device isavailable to all PCs connected to the network. The image forming devicecould be a printer, a multifunctional device having a printer function,or the like.

The present applicant has suggested in Japanese Unexamined PatentApplication Publication No. 2003-131836 a network printing system withWindows (registered trademark), which is an example of operating system(OS), installed in client computers and also in a server.

Windows (registered trademark) provides Graphics Device Interface (GDI),which is a program module for representing graphical object. When a userdesignates to print document on application software, print data isprepared through the GDI. That is, the application sends draw commandsto the GDI by calling functions for drawing functions of the GDI. Theapplication therefore does not need to know the model and specificationsof the image forming device used for printing, and the application canprint to image forming devices in a variety of models with varyingspecifications by simply using the GDI. In the technology disclosed inJapanese Unexamined Patent Application Publication No. 2003-131836 also,application software running on a client computer sends a print commandto the GDI to generate print data to be sent to a server.

In the technology disclosed in Japanese Unexamined Patent ApplicationPublication No. 2003-131836, when the application software sends a printcommand to the GDI to generate print data to be sent to the server, theGDI generates the print data in a format called an Enhanced Meta File(EMF). Print data in the EMF format is independent form a type ofdevice, that is, not dependent on the model of the image forming device,and is thus more versatile than print data written in a device-dependentformat enabling recognition by the specific final printer doing theactual printing (hereinafter referred to as “RAW data”). The EMF formatmakes it simple to process data and to create data.

Also, in this technology, the client computer creates data in the EMFformat and then sends the same to the server. The server temporarilystores the received data in the EMF format as a spool file, andprocesses the spool file and/or extracts font data from the spool fileas needed. Then, the server converts the data in the EMF format to RAWdata recognizable by the image forming device and sends the RAW data tothe image forming device for printing on paper or other recordingmedium.

However, sending data in the EMF format from the client computer to theserver sometimes increases the amount of data that flows over thenetwork to a large degree. This places a heavy burden on the network.

Because data in the EMF format is independent of the type of a targetdevice, the data in the EMF format often contains much extra data thatis not needed by the target device.

For example, data in the EMF format might contain color information eventhough a monochrome image forming device will be used for printing, orthe print data might be high resolution print data even though a lowresolution image forming device will be used for printing. In thesecases, information that cannot be used effectively by the image formingdevice flows over the network, thereby placing unnecessary burdens onthe network.

Also, data in the EMF format might contain redundant information tofacilitate secondary processing. For example, in multipage printingcalled N-in-1 printing, such as 2-in-1 or 4-in-1 printing, N-number ofsuccessive pages is printed on a single sheet. However, in the EMFformat, print data for the N-number of successive pages is not reducedto data for a single page (sheet). Instead, corresponding data includesprint data for the N-number of successive pages and a command data forconverting the print data to the N-in-1 format.

In addition, when printing a text, such as CONFIDENTIAL, over anoriginal image, the text and the original image are superimposed one onthe other and printed on a single sheet. However, data in the EMF formatincludes data for the text as a separate layer from data for theoriginal image, but the data for the text and the data for the originalimage are not processed into print data for a single page.

This is convenient to further process the print data, such as to converta 2-in-1 layout to a 4-in-1 layout, or to change the color of the text.However, this simply puts an unnecessary load on the network if furtherprocessing is unnecessary.

SUMMARY OF THE INVENTION

In the view of foregoing, it is an object of the present invention toovercome the above problems, and also to provide a print data processingsystem that reduces the amount of print data sent from a client computerto a server, thereby reducing the load on a network.

In order to attain the above and other object, according to one aspectof the present invention, there is provided a print data processingsystem provided to a client device of a printing system that transmits aprint data from the client device to a server over a network, the serverbeing connected to an image forming device. The print data processingsystem includes a GDI, a spooler, and processing means. The GDIgenerates a print data according to a draw command in selected one of afirst format and a second format. The print data in the first format isan intermediate data convertible to a data dependent of the imageforming device. The print data in the second format is dependent of theimage forming device and compressed more than the print data in thefirst format. The GDI selectively generates a primary print data in thefirst format that includes image data and process information indicatinghow to process the image data. The spooler stores the print datagenerated by the GDI as a spool file and is capable of sending the printdata stored as the spool file to the server over the network. Theprocessing means is for generating the draw command corresponding to aprocessed image based on the image data and the process informationincluded in the primary print data in the first format and for applyingthe draw command to the GDI. The GDI generates a secondary print data inthe second format that includes information corresponding to theprocessed image upon applied with the draw command. The GDI generatesthe primary print data in the first format in accordance with a commandfrom a higher module. The spooler stores the primary print data in thefirst format as a spool file. The processing means generates the drawcommand corresponding to the processed image based on the primary printdata in the first format and applies the draw command to the GDI. TheGDI generates the secondary print data in the second format inaccordance with the draw command. The spooler stores the secondary printdata in the second format as a spool file and transmits the secondaryprint data in the second format to the server over the network.

According to different aspect of the present invention, there isprovided A control program for controlling a print data processingsystem provided to a client device of a printing system that transmits aprint data from the client device to a server over a network, the serverbeing connected to an image forming device. The control program includesthe programs of a) generating a primary print data in a first format inaccordance with a command from a higher module using a GDI, the primarydata including image data and process information indicating how toprocess the image data, b) storing the primary print data in the firstformat as a spool file, c) generating a draw command corresponding to aprocessed image based on the image data and the process informationincluded in the primary print data in the first format, d) applying thedraw command to the GDI, e) generating a secondary print data in asecond format in accordance with the draw command using the GDI, thesecondary print data in the second format including informationcorresponding to the processed image, and f) storing the secondary printdata in the second format as a spool file and transmitting the secondaryprint data in the second format to the server over the network. Data inthe first format is an intermediate data convertible to a data dependentof the image forming device, and data in the second format is dependentof the image forming device and compressed more than the data in thefirst format.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings:

FIG. 1 is a bock diagram showing the configuration of a print systemaccording to an embodiment of the present invention;

FIG. 2 is an explanatory view of a data structure of a spool file beforeprocessing;

FIG. 3 is an explanatory view of a data structure of EMF;

FIG. 4 is an explanatory view of data flow on a client computer;

FIG. 5 is a flowchart representing a spool file processing operationaccording to the embodiment of the present invention;

FIG. 6 is a flowchart representing a processing operation according tothe embodiment of the present invention;

FIG. 7 is an explanatory view of layout in multipage printing;

FIG. 8 is a flowchart representing a multipage printing processaccording to the embodiment of the present invention;

FIG. 9 is a flowchart representing a 4-in-1 printing process accordingto the embodiment of the present invention;

FIG. 10 is a flowchart representing a 2-in-1 printing process accordingto the embodiment of the present invention;

FIG. 11 is an explanatory view of layout in overlap printing;

FIG. 12 is a flowchart representing an overlap printing processaccording an embodiment of the present invention;

FIG. 13 is an explanatory view of layout in page-order exchangeprinting; and

FIG. 14 is a flowchart representing a page-order exchange printingprocess according to the embodiment of the present invention.

PREFERRED EMBODIMENT OF THE PRESENT INVENTION

Next, a print data processing system according to an embodiment of thepresent invention will be described with reference to the accompanyingdrawings.

FIG. 1 is a block diagram showing the configuration of a print system100. The print system 100 includes a client computer 1, a servercomputer 2, and a printer 3. In the following description, the clientcomputer 1 and the server computer 2 will be referred to as “client 1”and “server 2”, respectively. The client 1 includes the print dataprocessing system of the present embodiment.

The client 1 and the server 2 are both personal computers and eachincludes a control unit, an input unit, an output unit, such as adisplay, and a storage well known in the art. The control unit includesa central processing unit (CPU), a read only memory (ROM), and a randomaccess memory (RAM), and the input unit includes a keyboard and apointing device. An example of the storage is a hard disk drive. Windows(registered trademark) is installed as the operating system (OS) on boththe client 1 and the server 2. Common basic functions used by allapplications, such as disk and memory management and input/outputfunctions including keyboard input and screen output, are handled by theOS. It should be noted that in the following description, it is assumedthat the client 1 and the server 2 have various functions provided byWindows (registered trademark). Because the functions provided byWindows (registered trademark) are well known in the art, detaileddescription thereof will be omitted.

The client 1 and the server 2 are connected via a network. The printer 3is connected to the server 2, and the client 1 can output to the printer3.

Next, internal configurations of the client 1 and the server 2 will bedescribed. To facilitate understanding of flow of print data, thefunctions of the client 1 and the server 2 will be described following aprint data transfer path.

An application 11 of the client 1 is application-specific software thatruns on the client OS, such as wordprocessor software, spreadsheetsoftware, or the like.

When a user designates to print an image on the application 11, theapplication 11 generates draw commands according to the image andapplies the draw commands to graphics device interface (GDI) 15.

Note that an image prepared on the client 1 according to the application11 is a monochrome image, and the printer 3 is a monochrome printer inthis embodiment.

A printer driver 12 is a module that provides special printingfunctions, such as multipage printing function and overlap printingfunction. If the user designates a special printing using functions(user interface) provided by a printer driver UI 12 a (FIG. 4) whendesignating to print, then the printer driver 12 generates draw commandscorresponding to the designated special printing and applies the drawcommands to the GDI 15.

The application 11 and the printer driver 12 send draw commands to theGDI 15 by calling functions (application programming interface (API)functions) for sending commands to the GDI 15.

The GDI 15 is a program module that performs management of a devicecontext (DC), which is a virtual drawing area, and prepares print databy writing data on the DC. The GDI 15 can generate both data in the EMFformat and RAW data. Which type of print data is generated is specifiedfrom a higher-level module. Higher-level modules are software modulesthat produce primary print data in a first format using the GDI, modulesthat create primary print data in the first format by processing printdata at the stage before the primary print data, and the like.

Data in the EMF format is data in an intermediate format that can beconverted to data dependent of the type of the printer 3 and cannot besent directly to the printer 3. RAW data is data dependent of the typeof the printer 3 and thus can be output directly to the printer 3. RAWdata can be compressed more than data in the EMF format.

An EMF represents a single page's worth of image to be printed andincludes a command and associated data corresponding to each API thatthe application 11 called to address the GDI 15 as shown in FIG. 3. Forexample, when a page is drawn by a line and bitmaps, an EMF for the pagecontains a command for drawing the line, associated data indicating thestart and end points of the line, a command indicating bitmap,associated bitmap data, and data of coordinates of the drawing position.Data in the EMF format is data containing one or more EMFs, each EMF fora single page, as shown in FIG. 2.

Note that among the functions of the GDI 15, the function for performingmanagement of DC and the function for preparing EMFs are provided by theOS, and the function for converting EMFs for a DC into commandsdependent on the type of the printer 3 (function for generating RAWdata) is provided as a printer driver GDI 12 b (FIG. 4) provided by adevice manufacturer.

The GDI 15 prepares a DC, and application software (higher module)commands the DC to draw an image. Then, the GDI 15 functions inaccordance with the command from the application software, therebypreparing print data in the EMF format in this embodiment. In otherwords, the GDI 15 creates EMFs upon receiving draw commands from theapplication 11. The EMF created by the GDI 15 are sent to a spooler 16.

That is, the application 11 generates information corresponding tounprocessed image, and the printer driver 12 produces informationindicating how to process the unprocessed image. Providing theseinformation to the GDI 15 creates EMFs as primary print data. In otherwords, the application 11 and the printer driver 12 together function asa primary print data preparation unit 14.

The spooler 16 combines print data (EMFs for a plurality of pagesproduced by the GDI 15 in page units) and prepares a spool file 18 thatincludes a data file and a command file. Then, the spool file 18 isstored in the hard disk 17.

The data file has a data structure shown in FIG. 2 and stores the samenumber of EMFs as pages to print. The command file stores suchinformation as the name of the print job, the name of the printer driverto use, and other basic printer settings. The command file may alsostore information specifying a process, such as a multipage printingprocess, an overlap printing process, a page-order exchange printingprocess, and the like, that the print data processing system of thisembodiment executes, and information on settings of the process.

Filenames of the command file and the data file include the same textstring indicating a job ID of the print job and an extension indicatingwhether the particular file is a command file or a data file.

It should be noted that the spool file 18 is not necessarily stored inthe client 1, and could be stored to an external storage deviceconnected to the client 1 or any other location, such as a networkeddrive, provided that the spool file 18 is accessible by the client 1.

In order to perform a special printing, data processor 20 is activated.The data processor 20 processes the EMFs of each print job stored as thespool file 18 for the special printing and applies draw commandscorresponding to a processed image to the GDI 15, thereby generatingsecondary print data.

More specifically, the data processor 20 judges whether or not processinformation relating to a special printing is stored in a command fileof a subject print job. If so, then the data processor 20 generates drawcommands corresponding to the processed image, and sends the drawcommands to the GDI 15. Also, the data processor 20 checks the filenameof the spool file 1B and recognizes the print job, and copies the printjob (both the data file and the command file) to a temporary file (notshown) in the hard disk 17 or the like. The temporary file is deletedwhen the file is no longer needed. Next, the data processor 20 dividesthe data file of the copied print job by page units based on the endcommands. That is, the data processor 20 separates, from one another,the respective EMFs included in the data file.

Further, the data processor 20 has a function for providing the GDI 15with information identifying a DC to be used, information designating amemory region where a new EMF resulting from setting of print data onthe DC is to be stored, and information indicating a region on the DCwhere an image to be drawn, and also a function for commanding the GDI15 to project images, i.e., project each EMF copy onto the DC, indicatedby the DC identified information, thereby setting print data of each EMFon the DC.

Moreover, the data processor 20 references flags (not shown) stored in astorage area in the printing system 100 to determine whether primaryprint data should be converted to data in the EMF format or RAW data andselects one of print processors provided to the server 2. In thisembodiment, primary print data is converted to RAW data in defaultsetting. Also, if it is determined that primary print data should beconverted to the RAW data, then a print processor 36 for RAW data isselected.

When converting primary print data to RAW data, the data processor 20performs a special printing process on each EMF, thereby generating PDLcommands (RAW data). In the example of FIG. 2, an EMS for a first pageincludes a command 1, data corresponding to the command 1, a command 2,data corresponding to the command 2, a command 3, data corresponding tothe command 3, and an end command, and this EMF is converted to PDLcommand (RAW data).

More specifically, the data processor 20 commands the GDI 15 to performprocess on the EMF, and so the GDI 15 retrieves special printing processinformation from the command file for the subject EMF which was copiedby the data processor 20 and analyzes the special printing processinformation. Then, the GDI 15 converts the EMF to corresponding PDLcommands (RAW data) through the printer driver GDI 12 b (FIG. 4) in theprinter driver 12. The converted PDL commands are written to the memoryarea specified by the data processor 20. At this time, bitmap drawcommands are converted to raster commands.

If there is no PDL command corresponding to a command of an EMF, thecommand is rasterized by the GDI 15 and replaced by a raster commandwhich is one of PDL commands.

On the other hand, when converting primary print data to data in the EMFformat, new EMF such as that shown in FIG. 3 is created through the dataprocessor 20. That is, in the example of FIG. 2, an EMF for a first pageincludes a command 1, data corresponding to the command 1, a command 2,data corresponding to the command 2, a command 3, data corresponding tothe command 3, and an end command. The new EMF shown in FIG. 3 is addedwith commands and corresponding data for achieving the designatedspecial printing, at position between the data corresponding to thecommand 3 and the end command.

More specifically, the data processor 20 commands the GDI 15 to performprocess on the EMF, and so the GDI 15 retrieves process information fromthe command file for the subject EMF which was copied by the dataprocessor 20 and analyzes the process information. The processinformation indicates which special printing process should be performedon the subject EMF. Then, the GDI 15 writes control commands andcorresponding data required for the special printing to the memory areaspecified by the data processor 20. In this manner, a new EMF, such asthat shown in FIG. 3, is prepared.

After the data processor 20 generates the secondary print data (RAW datain default setting), the secondary print data is returned as a new printjob to the spooler 16. The original print job previously stored as thespool file 18 is deleted. The secondary print data processed by the dataprocessor 20 is then sent by the spooler 16 over the network to theserver 2.

FIG. 4 summarizes flow of print data on the client 1. The application 11generates draw commands corresponding to an unprocessed image, and theprinter driver 12 generates draw commands corresponding to a specialprinting process that is performed on the unprocessed image. These drawcommands are provided to the GDI 15. The GDI 15 then prepares EMFs asprimary print data according to the draw commands, and the spooler 16combines the EMFs to a single spool file.

The data processor 20 then reads the EMF, interprets the unprocessedimage and information on how to process the unprocessed image, generatesdraw commands corresponding to a processed image, and provides the drawcommands to the GDI 15.

Based on the draw commands, the GDI 15 prepares secondary print data,which is RAW data (in default setting), through the function of theprinter driver GDI 12 b, and the spooler 16 spools the secondary printdata. Thereafter, the spooler 16 outputs the secondary print data to theserver 2 over the network.

As mentioned previously, an EMF is a standard drawing data structureused in Windows (registered trademark), can be used independently of thetype of a printer, and is thus quite versatile. However, thisversatility results in an abundance of redundant data.

On the other hand, RAW data is dependent of the type of a printer andincludes printer control codes that can only be used by a certain typeof printer. Printer control codes differ from maker to maker. Examplesof the print control codes include a set of commands in page descriptionlanguage (PDL), such as Hewlett-Packard's PCL language and Adobe'sPostscript (registered trademark). RAW data is generated according tothe particular specifications of the manufacturer and therefore has lessversatility than an EMF. However, because RAW data is mainly formed ofcontrol codes addressing the functions of a particular model, there arecases in which RAW data contains less redundant data than an EMF.

For example, if image data in an EMF is sent to the server 2 afterconverting the image data into PDL, data that is not needed by theprinter 3 is eliminated and need not be sent to the server 2.

In other words, by converting primary print data to RAW data assecondary print data before sending the data to the server 2, less datais transferred over the network, thereby reducing the load on thenetwork.

On the server 2, print data sent from the client 1 is processed by aspooler 31.

A spooling system 32 of the spooler 31 temporarily stores the receivedprint data as a spool file 34 on a hard disk 33. If the print data is inthe EMF format, then a print processor 35 for EMFs processes the printdata. On the other hand, if the print data is RAW data, then the printprocessor 36 for RAW data processes the print data. It should be notedthat the print processor 35 and the print processor 36 are shown side byside in FIG. 1, but this arrangement is for convenience only. The printprocessor 35 for EMFs is provided by the OS while the print processor 36for RAW data is provided as a printer driver by a device manufacturer.Also, the print processor 35 for EMFs is a general purpose printprocessor capable of processing RAW data as well, and is thus notlimited to EMF operations. On the other hand, the print processor 36 isfor processing only RAW data.

When EMFs requiring further processing for special printing is receivedby the server 2, a data processing unit (not shown) provided on theserver 2 is activated, and the data processing unit processes the EMFsaccordingly. The data processing unit on the server 2 has substantiallythe same functions as the data processor 20 on the client 1 describedabove. Because the data processing unit on the server 2 is not materialfeature of the present invention, further description thereof will beomitted.

Secondary print data processed by the print processor 35 or 36 istransmitted from the spooler 31 to a printer driver 38.

If the secondary print data is in the EMF format, then the printerdriver 38 converts the secondary print data to printer control codescorresponding to the printer 3 and sends the resulting printer controlcodes to the printer 3. That is, the printer driver 38 converts EMFs toprint data that can be handled by the PDL used in the printer 3 andsends the same to the printer 3. On the other hand, if the secondaryprint data is RAW data, then the printer driver 38 sends the RAW data tothe printer 3 without further processing the RAW data.

Next, a spool file process executed by the client 1 (special printingprocess executed on EMFs) will be described with reference to theflowchart in FIG. 5. In this process, primary print data in the EMFformat is selectively converted to secondary print data.

When this process starts, first in S1, it is determined whether or notprocess information relating to special printing is stored in a commandfile of a subject print job, which has been created in accordance withdraw commands from the primary print data preparation unit 14 and storedin the hard disk 17. This determination is made by the data processor 20interpreting the command file. If not (S1:NO), this means that it isunnecessary to process EMFs of the subject print job, and the presentprocess ends. On the other hand, if so (S1:YES), then in S2, operationwaits until all pages of the subject print job are spooled by thespooler 16. During this time, it is checked whether the data is beingspooled.

Next in S3, the data processor 20 copies the subject print job (datafile and command file) from the spool file 8 to a temporary file. In S4,the original print job is deleted from the spool file 18.

In S5, a data file of the copied print job is separated into EMFs by thedata processor 20. In S6, the EMFs are processed according to thespecial printing recognized in S1. Then, the current process ends.

Next, the process executed in S6 for processing EMFs will be describedin detail with reference to the flowchart in FIG. 6.

First in S11, it is determined whether or not RAW data is specified asdata type of secondary print data. Information as to whether RAW data isspecified or not is stored in a memory region on the client 1 (areacalled registry in Windows) or a parameter file. In this embodiment, RAWdata is specified in default setting, and this setting is changed onlywhen the user specifically changes the setting.

If S11 results in a negative determination (S11:NO), then in S12, adefault mode is selected as an open mode in which the printer 3 isopened. On the other hand, if S11 results in a positive determination(S11:YES), then in S13, a RAW mode is selected as the open mode. Thedefault mode is a mode designated by the OS, and the EMF mode isnormally set to the default mode.

Then in S14, the printer 3 is opened in the selected open mode. Becausethe printer driver 12 needed to printout to the opened printer 3 isstored in the command file, the printer 3 corresponding to the printerdriver 12 specified by the command file is opened. At this time, whetherthe print data is output to the printer 3 in the EMF format or as RAWdata is thus determined.

Next in S15, it is determined whether a print processor to be used onthe server 2 side has been specified or not. Information indicating asto whether a particular print processor is specified or not is stored ina memory or a parameter file on the client 1 similarly to theabove-mentioned information as to whether RAW data is specified. In thisembodiment, the print processor 36 for RAW is normally specified. Thissetting is only changed when intentionally changed by the user.

If it is determined in S15 that a print processor is not specified(S15:NO), then in S16, the name of a default print processor isselected. On the other hand, if it is determined that a print processoris specified (S15:YES), then in S17, the name of the print processor 36is selected.

In S18, the name of the print processor selected in either S16 or S17 isset as a print processor to be used on the server 2. At this time, oneof the print processor 35 and the print processor 36 is selected.

In S19, a job process is executed to print. In S20, the printer 3 isclosed. Then, this process ends.

That is, if EMF is specified as a data format for secondary print datawhen opening the printer 3, then the GDI 15 prepares secondary printdata in the EMF format without using the printer driver GDI 12 b. On theother hand, if RAW data is specified as a data format for the secondaryprint data when opening the printer 3, then the GDI 15 prepares RAW dataas secondary print data through the printer driver GDI 12 b. After theprinter 3 was opened, providing the printer with data converts the datato either EMFs or RAW data.

Next, the job process executed in S19 will be described in detail. Thejob process differs according to the special printing. Job processes forcertain special printing will be described below.

First, a job process for multipage printing will be described withreference to the flowchart of FIG. 8. Multipage printing is for printinga plurality of successive pages on the same sheet as shown in FIG. 7 andis thus referred to as N-in-1 printing, such as 4-in-1 or 2-in-1printing.

As shown in FIG. 8, first in S21, a coordinate and scale conversionprocesses are executed on the DC as required for the N-in-1 printing.Next in S22, an EMF for each page is projected onto the DC at theconverted coordinate system. That is, print data of EMF for each page isset on the DC according to the converted coordinate system. Then, theprocess ends.

Processes executed in S21 and S22 will be described below in greaterdetail for the 4-in-1 printing and 2-in-1 printing as examples.

First, the processes for the 4-in-1 printing will be described withreference to the flowchart of FIG. 9. In this process, first in S31, itis determined whether or not an EMF subjected to be processed is for(4n+1)^(th) page. If so (S31:YES), then in S32, a first coordinateconversion is preformed to set print data of the EMF for the (4n+1)^(th)page to the upper left portion of an m^(th) page. The coordinateconversion in S32 is performed based on the formulas:X′=aX+bY+cY′=dX+eY+fwherein coefficients “a”, “b”, “d”, and “e” define rotation and scaleconversion, and coefficients “c” and “f” define parallel movement. Thiscoordinate conversion is executed by calling the appropriate function(API) asserting the coordinate conversion command to the GDI 15.

On the other hand, if S31 results in a negative determination (S31:NO),then in S33, it is determined whether or not the present EMF is for a(4n+2)^(th) page. If so (S33:YES), then in S34, a second coordinateconversion is performed to set print data of the EMF for the (4n+2)^(th)page to the upper right portion of the m^(th) page. If not (S33:NO),then in S35, it is determined whether or not the present EMF is for a(4n+3)^(th) page. If so (S35:YES), then in S36, a third coordinateconversion is performed to set print data of the EMF for the (4n+3)^(th)page to the lower left portion of the m^(th) page.

If S35 results in a negative determination (S35:NO), then in S37, afourth coordinate conversion is performed to set print data of the EMFfor the (4n+4)^(th) page to the lower right portion of the m^(th) page.In S38, it is determined whether or not coordinate conversion has beencompleted for all pages. If not (S38:NO), then the process returns toS31. If so (S38:YES), then the present process ends.

Next, processes for 2-in-1 printing will be described with reference tothe flowchart in FIG. 10.

In this process, first in S41, it is determined whether the page will beprinted in portrait mode or landscape mode. In the portrait mode, thepaper is used with the shorter side at the top, and in the landscapemode, the paper is used with the longest side in the horizontaldirection. If the page will be printed in the portrait mode, then it isdetermined in S42 whether or not the present EMF is for an odd numberedpage. If so (S42:YES), then in S43, a fifth coordinate conversion isperformed to set print data of the EMF for the odd numbered page to theupper half portion of the page. Then, the process proceeds to S48. Onthe other hand, if not (S42:NO), this means that the present EMF is foran even numbered page. Then, a sixth coordinate conversion is performedin S44 to set print data of the EMF for the even numbered page to thelower half of the page. Then, the process proceeds to S48.

If it is determined in S41 that the page will be printed in thelandscape mode, then in S45, it is determined whether or not the presentEMF is for an odd numbered page. If so (S45:YES), then a seventhcoordinate conversion is performed in S46 to set print data of the EMFfor the odd numbered page to the left half of the page. Then, theprocess proceeds to S48. On the other hand, if not (S45:NO), then aneights coordinate conversion is performed in S47 to set print data ofthe EMF for the even numbered page to the right half of the page. Then,the process proceeds to S48.

In S48, it is determined whether or not coordinate conversion has beencompleted for all pages. If not (S48:NO), then the process returns toS41. On the other hand, if so (S48:YES), then the process ends.

In this process, data for a plurality of pages in the primary print datais converted to data for a single sheet in multipage printing, and thusconverted data is transmitted over the network. Therefore, the amount ofdata transmitted over the network can be reduced.

Next, a job process for overlap printing will be described withreference to the flowchart of FIG. 12. It should be noted that overlapprinting is to print a transparent image over an original image. Forexample, as shown in FIG. 11, a transparent image “Confidential” isprinted over an original image so that the original image can be seenthrough the transparent image.

As described above, in S5 of FIG. 5, the copied data file is separatedinto EMFs. In the process of FIG. 12, first in S51, print data of an EMFfor a subject page is set in a specific DC. Next, in S52, the size andprinting position of a transparent image are calculated based on thesize of a recording sheet, the number of letters in the transparentimage, and the printing angle of the transparent image with respect tothe recording sheet. In S53, print data of the transparent image whichhas been calculated in S52 is set to in overlapping form on the DC wherethe print data of the EMF has already been set in S51, therebyinstructing the GDI 15 through the API to perform drawing. Then, theprocess ends.

In this case, print data for multiple layers in the primary print datais combined, and the combined print data is sent to the server, therebyreducing the amount of data transmitted over the network.

It should be noted that the processes in S51 to 553 could be performedin an opposite order, that is, in the order of S53, S52, and S51. Inthis case, the transparent image will be printed first and then theoriginal image be printed on top of the transparent image.

Next, a job process for page-order exchange printing will be describedwith reference to the flowchart of FIG. 14. The page-order exchangeprinting is for change the order of printing a plurality of pages asshown in FIG. 13. For example, in order to perform face-up printing, theorder of printing the plurality of pages is reversed so that theplurality of pages will be printed from the last page up to the firstpage. In order to perform duplex printing, the order of printing theplurality of pages is adjusted so that different pages will be printedon both sides of each sheet.

As described above, in S5 of FIG. 5, the copied data file is separatedinto EMFs. In the process of FIG. 14, first in S71, the order ofprinting pages is calculated. Specifically, for the face up printing,the order of printing page is calculated as an inverse order. That is,the order of printing is calculated so that the pages will be printed inthe order of “n”, “n−1”, “n−2”, . . . “2”, and “1”. For the duplexprinting, the order of printing pages is calculated so that all the oddnumber pages will be printed first in a normal order, and then all theeven number pages will be printed in an inverse order.

Next, in S72, the EMFs for all the pages of the print job are retrievedin the order calculated in S71.

Note that when a manual duplex printing is performed, all the odd numberpages will be printed first on separate sheets. Then, the user turnsover the printed sheets, and reinserts the sheets into the printer.Then, the even umber pages will be printed on the unprinted sides of thesheets. For this reason, it is preferable that the single print job forthe manual duplex printing operation be separated into a first print jobfor odd numbered pages and a second print job for even numbered pages,so that the user can perform manual operation to turn over the sheetsand return them to the printer between the first and second print jobs.

Next, in S73, the retrieved EMFs are projected on the DC in the orderchanged in S71. Then, the present process ends.

Note that the print data created by the job process in S19 is either inthe EMF format or RAW data in accordance with the open mode specified inS14.

As described above, according to the print data processing systemprovided to the client 1, the client 1 sends RAW data (secondary printdata) created by the data processor 20 over the network to the server 2.Sending RAW data to the server 2 reduces the amount of data sent overthe network compared with sending data in the EMF format (primary printdata) directly to the server 2. Therefore, according to the print dataprocessing system of the present embodiment, the amount of print datasent from the client 1 to the server 2 is reduced, thereby reducing theload on the network.

Also, the print data processing system of the present embodiment canspecify one of the print processors provided to the server 2 as a printprocessor for RAW data. Therefore, the print processor 36 suited toprinting the RAW data can be used.

That is, it is possible for the server 2 to select and use one of printprocessors provided to the server 2. However, there is no assurance thatthe print processor selected by the server 2 matches the secondary printdata sent from the client 1. The configuration according to the presentembodiment, however, can specify a print processor most suited for thesecondary print data sent from the client 1.

Further, according to the present embodiment, a user can select EMF orRAW data to send to the server 2, and EMF data can be sent to the server2 if desired.

While some exemplary embodiments of this invention have been describedin detail, those skilled in the art will recognize that there are manypossible modifications and variations which may be made in theseexemplary embodiments while yet retaining many of the novel features andadvantages of the invention.

For example, in the above-described embodiment, print data output fromthe application 11 was monochrome data. However, the data could be colorprint data. In this case, if the printer 3 is a monochrome printer, datafor implementing color print contained in an EMF is unnecessary.Therefore, by converting the data to RAW data for monochrome printing,the amount of data transmitted over the network can be reduced.

Also, in the above-described embodiment, data in the EMF format wasdescribed as an example of primary print data in an intermediate format.However, the primary print data can be in different format.

Further, RAW data was described as an example of secondary print datathat is dependent of the type of printer and that can be compressed morethan the primary print data. However, insofar as the format isprinter-dependent and can be compressed more than the primary print dataformat, other data formats could be used instead. For example, if theprinter 3 has a function for decoding data which has been compressedusing a specific encoding scheme, then primary print data could beconverted to secondary print data using the specific encoding schemerather than using a PDL.

Note that compression includes all methods that can be used to reducethe data size. More specifically, compression includes both reversibleand irreversible compression methods. Irreversible compression methodsinclude techniques that simply delete all or part of unnecessary data.

1. A print data processing system installed in a client device of aprinting system, the printing system transmitting print data from theclient device to a server over a network, the server being connected toan image forming device, the print data processing system comprising: aGDI that generates a print data according to a draw command in selectedone of a first format and a second format, the print data in the firstformat being intermediate data convertible to data dependent of theimage forming device, the print data in the second format beingdependent of the image forming device and being compressed more than theprint data in the first format, wherein the GDI selectively generatesprimary print data in the first format that includes image data andprocess information indicating how to process the image data; a spoolerthat stores the print data generated by the GDI as a spool file and thatis capable of sending the print data stored as the spool file to theserver over the network; and a data processor that generates the drawcommand corresponding to a processed image based on the image data andthe process information included in the primary print data in the firstformat and for applying the draw command to the GDI, wherein the GDIgenerates secondary print data in the second format that includesinformation corresponding to the processed image upon applied with thedraw command, wherein: the GDI generates the primary print data in thefirst format in accordance with a command from a higher module; thespooler stores the primary print data in the first format as a spoolfile; the data processor generates the draw command corresponding to theprocessed image based on the primary print data in the first format andapplies the draw command to the GDI; the GDI generates the secondaryprint data in the second format in accordance with the draw command; andthe spooler stores the secondary print data in the second format as aspool file and transmits the secondary print data in the second formatfrom the client device to the server over the network.
 2. The print dataprocessing system according to claim 1, wherein when the data processorgenerates the draw command based on the primary print data that includesthe primary image data in a bitmap format and applies the draw commandto the GDI, the GDI converts the primary image data to the secondaryimage data whose data amount has been compressed by writing the primaryimage data in a page description language, thereby generating thesecondary print data including the secondary image data.
 3. The printdata processing system according to claim 1, wherein when the dataprocessor generates the draw command based on the primary print dataincluding color print data and applies the draw command to the GDI, theGDI converts the color print data to monochrome print data whose dataamount has been compressed, thereby generating the secondary print dataincluding the monochrome print data.
 4. The print data processing systemaccording to claim 1, wherein when the data processor generates the drawcommand based on the primary print data including page print data thatis for printing a plurality of pages on respective recording sheets andapplies the draw command to the GDI, the GDI converts the page printdata to multipage print data for printing the plurality of pages in asingle recording sheet, thereby generating the secondary print dataincluding the multipage print data.
 5. The print data processing systemaccording to claim 1, wherein when the data processor generates the drawcommand based on the primary print data that includes overlap print datafor a plurality of layers and applies the draw command to the GDI, theGDI converts the overlap print data to overlapped print data byoverlapping the plurality of layers, thereby generating the secondaryprint data including the overlapped print data.
 6. The print dataprocessing system according to claim 1, wherein the data processorspecifies one of a plurality of printing processors provided to theserver as a printing processor that is used when printing the secondaryprint data.
 7. The print data processing system according to claim 1,wherein the data processor switches, based on an instruction from auser, between a first setting and a second setting, wherein: the GDIselectively generates the secondary print data in the first format; inthe first setting, the GDI generates the secondary print data in thefirst format, and the secondary print data in the first format is sentto the server; in the second setting, the GDI generates the secondaryprint data in the second format, and the secondary print data in thesecond format is sent to the server; and the data processor switchesbetween the first setting and the second setting when the spooler storesthe primary print data in the first format as the spool file.